Image Source: https://dowsleyassociates.com.au/what-you-need-to-know-facing-drink-driving-offence/


Client Recommendation

Client : Police Department of Australian Road safety.

The evidence outlined in this report highlights the correlation of drink driving and road fatalities and recommends an increased implementation of effective RBTs as a countermeasure to effectively decrease road fatalities caused by illegal blood alcohol levels (BAC).

Initial Data Analysis (IDA)

library(rmarkdown)

# LOAD DATA
safety = read.csv("RBT.csv")
colnames(safety) <- c("Year", "State","RBT_conducted", "RBT_positive", "Licences", "Num_killed","Num_deaths") # changing original column names as they are too long

safety$death_total <- safety$Num_killed +  safety$Num_deaths # creating a new variable to calculate the number of fatalities on the road as a whole 

# Ordering the variables 
safety$Year_order <- factor(safety$Year, ordered = TRUE)
safety$States <- factor(safety$State, ordered = TRUE)
safety$Positive <- factor(safety$RBT_positive, ordered = TRUE)
safety$conducted <- factor(safety$RBT_conducted, ordered = TRUE)
safety$licence_order <- factor(safety$Licences, ordered = TRUE)

Source

Valid data collected by a reputable government institution https://data.gov.au/data/dataset/australian-random-breath-testing. Recording every Random Breath Test conducted since 2008, collating it with the number of deaths caused by illegal BAC.

Data cleaning

Variables which provided no usable insight were removed.

Does the number of positive RBT affect the occurrence rate of Road fatalities?

 #loading packages
library(ggplot2)
library(plotly)

# omitting all NA values
safety_nona <- na.omit(safety)
attach(safety_nona)

x_num <- as.numeric(Year)    
vec_new <- gsub(",", "", RBT_positive)  
pos <- as.numeric(vec_new) # changing into num
df <- data.frame(year = x_num, positive = pos) # Grouping positive RBTs according to year
options(scipen = 999)  # Whole numbers and not in scientific form 


# Calculate slope and intercept of line of best fit
slope_intercept <- coef(lm(death_total ~ pos, data = safety_nona))
##  (Intercept)          pos 
## -4.224982573  0.004527664

p <- ggplot(safety_nona) +
  aes(x = pos, y = death_total, color=States, shape=States) +
  geom_point() + theme_minimal() + labs(title = "Correlation of Annual road fatalities and Positive RBTs",
              caption = "Data Source: https://data.gov.au/data/dataset/australian-random-breath-testing",
              x = "Positive RBTs", y = "Total annual road fatalities caused by an illegal BAC",
              tag = "Graph 1") 

# plotting the regression line
p <- p + geom_abline(intercept = -4, slope = 0.0045, colour = 'red')

ggplotly(p)

Data Source: https://data.gov.au/data/dataset/australian-random-breath-testing

The regression line shows an obvious positive correlation between Positive RBTs and the total annual road fatalities involving an illegal BAC. Although it cannot be determined that positive RBTs cause road fatalities, but it can be deduced that there is an indefinite relation between the two variables. Hence, as the number of positive RBTs increase the more deaths caused by a BAC above the legal limit increases.

The primary issue with this data set is the missing fatality rates for Victoria, Australian Capital Territory and Western Australia, as well as a few other data points. Not accurately depicting the whole of Australia.

The more alcohol consumed, drivers blood alcohol concentration rises and so does the risk of fatalities (Roads and Traffic Authority, 2009).

Source: https://driveformula.com.au/en/wp-content/uploads/2013/04/Drinking-and-driving.pdf

Has there been a decline in the number of annual deaths caused by an illegal BAC in Australia?

# loading packages 
library(ggplot2)
library(plotly)
library(ggrepel)
library(dplyr)

 
safety_nona <- na.omit(safety) # omitting all NA values

a <- ggplot(data=safety_nona, aes(x=Year_order, y=death_total, fill=States)) +
  geom_bar(stat="identity")+
  scale_fill_brewer(palette="Paired")+
  theme_minimal() + theme(panel.border = element_rect(color = "black",fill = NA,size = 1.5))+ scale_x_discrete(guide = guide_axis(angle = 50))+ labs(title = "Total Annual deaths involving a BAC over the legal limit",
              caption = "Data Source: https://data.gov.au/data/dataset/australian-random-breath-testing",
              x = "Year", y = "Total annual road deaths involving an illegal BAC",
              tag = "Graph 2") 

# finding mean 
mean_for_licence <- mean(as.numeric(safety$licence_order),na.rm=TRUE)
mean_for_conducted <- mean(as.numeric(safety$RBT_conducted),na.rm=TRUE)

ggplotly(a)

Data Source: https://data.gov.au/data/dataset/australian-random-breath-testing

The bar graph is positively skewed which suggest that ongoing countermeasures implemented will keep decreasing the number of road fatalities caused by an illegal BAC.

Increase RBT visibility as a countermeasure has a deterrent impact on the decrease in road fatalities (Terer, K., & Brown, R.2014). Australian states should breath test larger amount of licensed drivers annual. The mean of licensed drivers is 38 and RBT conducted is 39,355 (annual), since RBTs is the strongest deterrent in decreasing positive RBTS and overall road fatalities, States should aim to increase the proportion of drivers tested annually.

Limitation of RBTs
Selection bias
•During specific seasons or events there is a period of increased RBT enforcement when the potential for drink driving is expected to be high.
• Specific locations are targeted which won’t influence drivers drinking behaviours but rather their locations as well as drivers use of avoidance tactics.
• Specific drivers that draw police attention are more likely to be selected.

Observational Study
More research is needed to concluded the amount of test needed to near road fatalities to zero.

Image Source:https://www.dailyliberal.com.au/story/6522945/police-blitz-nabs-speeding-drink-driving-motorists-in-region/

Furthermore, since Positive RBTs has a correlation to road fatalities, if RBTs can breath test more licensed drivers and detect more positive breath test annually, the number of road fatalities involving an illegal BAC could potentially decrease at a continuous rate until there is near zero road fatalities caused by illegal BAC. Hence, it is recommended more strategically deployed RBTs that appear unpredictable. In smaller rural states/parts of Australia more focus on RBT enforcement due to the lack of transportation access.

Acknowledgments

• Drug and Alcohol Research and Training Australia.(2020).Alcohol and Young People.Retrieved from http://darta.net.au/wordpress-content/uploads/2020/02/RBT-FINAL-2020.pdf
• Owens, D.,Boorman, M.Evaluating the deterrent effect of random breath testing (RBT) and random drug testing (RDT)—The driver’s perspective Research findings Monograph Series No. 41.Retrieved from https://www.aic.gov.au/sites/default/files/2020-05/monograph41.pdf
• Mah, V.(2021).Effects of Alcohol on Driving.Retrieved from https://www.andatechdistribution.com.au/blogs/resources/effects-of-alcohol-on-driving
• Breathalysers-Australia.Statistics relating to drink driving injuries.Retrieved from https://breathalysers-australia.com.au/drink-driving/
• CARRS-Q.(2016).Fact Sheet: Drink Driving.Retrieved from https://www.nrspp.org.au/resources/fact-sheet-drink-driving/
• Roads and Traffic Authority.(2009).Drinking and driving.Retrieved from https://driveformula.com.au/en/wp-content/uploads/2013/04/Drinking-and-driving.pdf
• Alcohol and Drug Foundation.(2017).Blood alcohol levels.Retrieved from https://adf.org.au/insights/blood-alcohol-levels/
• Terer, K., & Brown, R.(2014).Effective drink driving prevention and enforcement strategies: Approaches to improving practice. Trends & issues in crime and criminal justice no. 472. Canberra: Australian Institute of Criminology.Retrieved from https://www.aic.gov.au/publications/tandi/tandi472
• Bureau of Infrastructure and Transport Research Economics.Australian Random Breath Testing.Retrieved from https://data.gov.au/data/dataset/australian-random-breath-testing

LS0tCnRpdGxlOiAiQW4gUkJUIGFwcHJvYWNoIGZvciBzYWZlciByb2FkcyBpbiBBdXN0cmFsaWEiCmF1dGhvcjogIjUyMDQ1MzM0MiIKc3VidGl0bGU6ICJDbGllbnQgcmVwb3J0IGZvciBQb2xpY2UgRGVwYXJ0bWVudCBvZiBBdXN0cmFsaWFuIFJvYWQgc2FmZXR5LiA8YnI+IFByb2plY3QgMyIKZGF0ZTogIlVuaXZlcnNpdHkgb2YgU3lkbmV5IHwgREFUQTEwMDEgfCBBcHJpbCAyMDIyIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUgIyBlbWJlZCAuUm1kIGZpbGUKICAgIHRvYzogdHJ1ZSAgIyB0YWJsZSBvZiBjb250ZW50cwogICAgdG9jX2RlcHRoOiAzCiAgICB0b2NfZmxvYXQ6IHRydWUgIyB0b2MgaXMgYWx3YXlzIHZpc2libGUgd2hlbiBzY3JvbGxlZAogICAgdGhlbWU6IGNvc21vICMgdGhlbWUgdGhlIGRvYwogICAgaGlnaGxpZ2h0OiB0YW5nbyAjIHRoZW1lIHN5bnRheCBjb2xvdXJpbmcKY29kZV9mb2xkaW5nOiBoaWRlICMgaGlkZSBjb2RlCi0tLQpgYGB7Y3NzIG5ld3N0eWxlcywgZWNobz1GQUxTRX0KaDEsIC5oMSwgaDIsIC5oMiwgaDMsIC5oMyB7IC8qIEFkZCBzcGFjZSBiZWZvcmUgaGVhZGluZ3M6ICovCiAgICBtYXJnaW4tdG9wOiA1NnB4Owp9CmgxLCBoMiB7IC8qIGFkZCBib3JkZXIgdG8gaDEgYW5kIGgyICovCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICM2NjY7Cn0KaDIgeyAvKiBSZXNpemUgaGVhZGVyIDI6ICovCiAgZm9udC1zaXplOiAyMnB4Owp9CmgzIHsgLyogUmVzaXplIGhlYWRlciAyOiAqLwogIGZvbnQtc2l6ZTogMThweDsKfQpib2R5IHsgLyogTWFrZSBtYWluIHRleHQgY29sb3VyIGJsYWNrICovCiAgY29sb3I6IGJsYWNrOwp9CmEgeyAvKiBMaW5rIGNvbG91cnMgKi8KICBjb2xvcjogYmx1ZTsKfQoudG9jaWZ5IHsgLyogU29tZSB0b2MgZml4ZXMqLwogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lOyAvKiByZW1vdmUgYm9yZGVyICovCn0KLnRvY2lmeS1oZWFkZXIgeyAvKiBmaXggZm9yIGhvcnJpYmxlIGluZGVudCBpbiB0b2MgKi8KICB0ZXh0LWluZGVudDogaW5pdGlhbDsKfQoKYGBgCgoKIVtdKGltYWdlcy9SQlQucG5nKQpJbWFnZSBTb3VyY2U6IGh0dHBzOi8vZG93c2xleWFzc29jaWF0ZXMuY29tLmF1L3doYXQteW91LW5lZWQtdG8ta25vdy1mYWNpbmctZHJpbmstZHJpdmluZy1vZmZlbmNlLyAKCjxicj4KCgojIENsaWVudCBSZWNvbW1lbmRhdGlvbiB7LX0KCkNsaWVudCA6IFBvbGljZSBEZXBhcnRtZW50IG9mIEF1c3RyYWxpYW4gUm9hZCBzYWZldHkuIAoKVGhlIGV2aWRlbmNlIG91dGxpbmVkIGluIHRoaXMgcmVwb3J0IGhpZ2hsaWdodHMgdGhlIGNvcnJlbGF0aW9uIG9mIGRyaW5rIGRyaXZpbmcgYW5kIHJvYWQgZmF0YWxpdGllcyBhbmQgcmVjb21tZW5kcyBhbiBpbmNyZWFzZWQgaW1wbGVtZW50YXRpb24gb2YgZWZmZWN0aXZlIFJCVHMgYXMgYSBjb3VudGVybWVhc3VyZSB0byBlZmZlY3RpdmVseSBkZWNyZWFzZSByb2FkIGZhdGFsaXRpZXMgY2F1c2VkIGJ5IGlsbGVnYWwgYmxvb2QgYWxjb2hvbCBsZXZlbHMgKEJBQykuCgoKIyBJbml0aWFsIERhdGEgQW5hbHlzaXMgKElEQSkgey19CgpgYGB7ciB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KHJtYXJrZG93bikKCiMgTE9BRCBEQVRBCnNhZmV0eSA9IHJlYWQuY3N2KCJSQlQuY3N2IikKY29sbmFtZXMoc2FmZXR5KSA8LSBjKCJZZWFyIiwgIlN0YXRlIiwiUkJUX2NvbmR1Y3RlZCIsICJSQlRfcG9zaXRpdmUiLCAiTGljZW5jZXMiLCAiTnVtX2tpbGxlZCIsIk51bV9kZWF0aHMiKSAjIGNoYW5naW5nIG9yaWdpbmFsIGNvbHVtbiBuYW1lcyBhcyB0aGV5IGFyZSB0b28gbG9uZwoKc2FmZXR5JGRlYXRoX3RvdGFsIDwtIHNhZmV0eSROdW1fa2lsbGVkICsgIHNhZmV0eSROdW1fZGVhdGhzICMgY3JlYXRpbmcgYSBuZXcgdmFyaWFibGUgdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgZmF0YWxpdGllcyBvbiB0aGUgcm9hZCBhcyBhIHdob2xlIAoKIyBPcmRlcmluZyB0aGUgdmFyaWFibGVzIApzYWZldHkkWWVhcl9vcmRlciA8LSBmYWN0b3Ioc2FmZXR5JFllYXIsIG9yZGVyZWQgPSBUUlVFKQpzYWZldHkkU3RhdGVzIDwtIGZhY3RvcihzYWZldHkkU3RhdGUsIG9yZGVyZWQgPSBUUlVFKQpzYWZldHkkUG9zaXRpdmUgPC0gZmFjdG9yKHNhZmV0eSRSQlRfcG9zaXRpdmUsIG9yZGVyZWQgPSBUUlVFKQpzYWZldHkkY29uZHVjdGVkIDwtIGZhY3RvcihzYWZldHkkUkJUX2NvbmR1Y3RlZCwgb3JkZXJlZCA9IFRSVUUpCnNhZmV0eSRsaWNlbmNlX29yZGVyIDwtIGZhY3RvcihzYWZldHkkTGljZW5jZXMsIG9yZGVyZWQgPSBUUlVFKQpgYGAKCiMjIFNvdXJjZQpWYWxpZCBkYXRhIGNvbGxlY3RlZCBieSBhIHJlcHV0YWJsZSBnb3Zlcm5tZW50IGluc3RpdHV0aW9uIGh0dHBzOi8vZGF0YS5nb3YuYXUvZGF0YS9kYXRhc2V0L2F1c3RyYWxpYW4tcmFuZG9tLWJyZWF0aC10ZXN0aW5nLiBSZWNvcmRpbmcgIGV2ZXJ5IFJhbmRvbSBCcmVhdGggVGVzdCBjb25kdWN0ZWQgc2luY2UgMjAwOCwgY29sbGF0aW5nIGl0IHdpdGggdGhlIG51bWJlciBvZiBkZWF0aHMgY2F1c2VkIGJ5IGlsbGVnYWwgQkFDLgoKIyMgRGF0YSBjbGVhbmluZyAKVmFyaWFibGVzIHdoaWNoIHByb3ZpZGVkIG5vIHVzYWJsZSBpbnNpZ2h0IHdlcmUgcmVtb3ZlZC4KIAojIyBEb2VzIHRoZSBudW1iZXIgb2YgcG9zaXRpdmUgUkJUIGFmZmVjdCB0aGUgb2NjdXJyZW5jZSByYXRlIG9mIFJvYWQgZmF0YWxpdGllcz97LX0KCmBgYHtyIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIGZpZy5jYXA9IkRhdGEgU291cmNlOiBodHRwczovL2RhdGEuZ292LmF1L2RhdGEvZGF0YXNldC9hdXN0cmFsaWFuLXJhbmRvbS1icmVhdGgtdGVzdGluZyJ9IAogI2xvYWRpbmcgcGFja2FnZXMKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KHBsb3RseSkKCiMgb21pdHRpbmcgYWxsIE5BIHZhbHVlcwpzYWZldHlfbm9uYSA8LSBuYS5vbWl0KHNhZmV0eSkKYXR0YWNoKHNhZmV0eV9ub25hKQoKeF9udW0gPC0gYXMubnVtZXJpYyhZZWFyKSAgICAKdmVjX25ldyA8LSBnc3ViKCIsIiwgIiIsIFJCVF9wb3NpdGl2ZSkgIApwb3MgPC0gYXMubnVtZXJpYyh2ZWNfbmV3KSAjIGNoYW5naW5nIGludG8gbnVtCmRmIDwtIGRhdGEuZnJhbWUoeWVhciA9IHhfbnVtLCBwb3NpdGl2ZSA9IHBvcykgIyBHcm91cGluZyBwb3NpdGl2ZSBSQlRzIGFjY29yZGluZyB0byB5ZWFyCm9wdGlvbnMoc2NpcGVuID0gOTk5KSAgIyBXaG9sZSBudW1iZXJzIGFuZCBub3QgaW4gc2NpZW50aWZpYyBmb3JtIAoKCiMgQ2FsY3VsYXRlIHNsb3BlIGFuZCBpbnRlcmNlcHQgb2YgbGluZSBvZiBiZXN0IGZpdApzbG9wZV9pbnRlcmNlcHQgPC0gY29lZihsbShkZWF0aF90b3RhbCB+IHBvcywgZGF0YSA9IHNhZmV0eV9ub25hKSkKIyMgIChJbnRlcmNlcHQpICAgICAgICAgIHBvcyAKIyMgLTQuMjI0OTgyNTczICAwLjAwNDUyNzY2NAoKcCA8LSBnZ3Bsb3Qoc2FmZXR5X25vbmEpICsKICBhZXMoeCA9IHBvcywgeSA9IGRlYXRoX3RvdGFsLCBjb2xvcj1TdGF0ZXMsIHNoYXBlPVN0YXRlcykgKwogIGdlb21fcG9pbnQoKSArIHRoZW1lX21pbmltYWwoKSArIGxhYnModGl0bGUgPSAiQ29ycmVsYXRpb24gb2YgQW5udWFsIHJvYWQgZmF0YWxpdGllcyBhbmQgUG9zaXRpdmUgUkJUcyIsCiAgICAgICAgICAgICAgY2FwdGlvbiA9ICJEYXRhIFNvdXJjZTogaHR0cHM6Ly9kYXRhLmdvdi5hdS9kYXRhL2RhdGFzZXQvYXVzdHJhbGlhbi1yYW5kb20tYnJlYXRoLXRlc3RpbmciLAogICAgICAgICAgICAgIHggPSAiUG9zaXRpdmUgUkJUcyIsIHkgPSAiVG90YWwgYW5udWFsIHJvYWQgZmF0YWxpdGllcyBjYXVzZWQgYnkgYW4gaWxsZWdhbCBCQUMiLAogICAgICAgICAgICAgIHRhZyA9ICJHcmFwaCAxIikgCgojIHBsb3R0aW5nIHRoZSByZWdyZXNzaW9uIGxpbmUKcCA8LSBwICsgZ2VvbV9hYmxpbmUoaW50ZXJjZXB0ID0gLTQsIHNsb3BlID0gMC4wMDQ1LCBjb2xvdXIgPSAncmVkJykKCmdncGxvdGx5KHApCmBgYAoKVGhlIHJlZ3Jlc3Npb24gbGluZSBzaG93cyBhbiBvYnZpb3VzIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJldHdlZW4gUG9zaXRpdmUgUkJUcyBhbmQgdGhlIHRvdGFsIGFubnVhbCByb2FkIGZhdGFsaXRpZXMgaW52b2x2aW5nIGFuIGlsbGVnYWwgQkFDLiBBbHRob3VnaCBpdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCB0aGF0IHBvc2l0aXZlIFJCVHMgY2F1c2Ugcm9hZCBmYXRhbGl0aWVzLCBidXQgaXQgY2FuIGJlIGRlZHVjZWQgdGhhdCB0aGVyZSBpcyBhbiBpbmRlZmluaXRlIHJlbGF0aW9uIGJldHdlZW4gdGhlIHR3byB2YXJpYWJsZXMuIEhlbmNlLCBhcyB0aGUgbnVtYmVyIG9mIHBvc2l0aXZlIFJCVHMgaW5jcmVhc2UgdGhlIG1vcmUgZGVhdGhzIGNhdXNlZCBieSBhIEJBQyBhYm92ZSB0aGUgbGVnYWwgbGltaXQgaW5jcmVhc2VzLgoKVGhlIHByaW1hcnkgaXNzdWUgd2l0aCB0aGlzIGRhdGEgc2V0IGlzIHRoZSBtaXNzaW5nIGZhdGFsaXR5IHJhdGVzIGZvciBWaWN0b3JpYSwgQXVzdHJhbGlhbiBDYXBpdGFsIFRlcnJpdG9yeSBhbmQgV2VzdGVybiBBdXN0cmFsaWEsIGFzIHdlbGwgYXMgYSBmZXcgb3RoZXIgZGF0YSBwb2ludHMuIE5vdCBhY2N1cmF0ZWx5IGRlcGljdGluZyB0aGUgd2hvbGUgb2YgQXVzdHJhbGlhLiAKClRoZSBtb3JlIGFsY29ob2wgY29uc3VtZWQsIGRyaXZlcnMgYmxvb2QgYWxjb2hvbCBjb25jZW50cmF0aW9uIHJpc2VzIGFuZCBzbyBkb2VzIHRoZSByaXNrIG9mIGZhdGFsaXRpZXMgKFJvYWRzIGFuZCBUcmFmZmljIEF1dGhvcml0eSwgMjAwOSkuIAoKIVtdKGltYWdlcy9TdGF0LnBuZykKU291cmNlOiBodHRwczovL2RyaXZlZm9ybXVsYS5jb20uYXUvZW4vd3AtY29udGVudC91cGxvYWRzLzIwMTMvMDQvRHJpbmtpbmctYW5kLWRyaXZpbmcucGRmCgoKCiMjIEhhcyB0aGVyZSBiZWVuIGEgZGVjbGluZSBpbiB0aGUgbnVtYmVyIG9mIGFubnVhbCBkZWF0aHMgY2F1c2VkIGJ5IGFuIGlsbGVnYWwgQkFDIGluIEF1c3RyYWxpYT8gey19CgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCAgZmlnLmNhcD0iRGF0YSBTb3VyY2U6IGh0dHBzOi8vZGF0YS5nb3YuYXUvZGF0YS9kYXRhc2V0L2F1c3RyYWxpYW4tcmFuZG9tLWJyZWF0aC10ZXN0aW5nIn0KCiMgbG9hZGluZyBwYWNrYWdlcyAKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KHBsb3RseSkKbGlicmFyeShnZ3JlcGVsKQpsaWJyYXJ5KGRwbHlyKQoKIApzYWZldHlfbm9uYSA8LSBuYS5vbWl0KHNhZmV0eSkgIyBvbWl0dGluZyBhbGwgTkEgdmFsdWVzCgphIDwtIGdncGxvdChkYXRhPXNhZmV0eV9ub25hLCBhZXMoeD1ZZWFyX29yZGVyLCB5PWRlYXRoX3RvdGFsLCBmaWxsPVN0YXRlcykpICsKICBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIpKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IlBhaXJlZCIpKwogIHRoZW1lX21pbmltYWwoKSArIHRoZW1lKHBhbmVsLmJvcmRlciA9IGVsZW1lbnRfcmVjdChjb2xvciA9ICJibGFjayIsZmlsbCA9IE5BLHNpemUgPSAxLjUpKSsgc2NhbGVfeF9kaXNjcmV0ZShndWlkZSA9IGd1aWRlX2F4aXMoYW5nbGUgPSA1MCkpKyBsYWJzKHRpdGxlID0gIlRvdGFsIEFubnVhbCBkZWF0aHMgaW52b2x2aW5nIGEgQkFDIG92ZXIgdGhlIGxlZ2FsIGxpbWl0IiwKICAgICAgICAgICAgICBjYXB0aW9uID0gIkRhdGEgU291cmNlOiBodHRwczovL2RhdGEuZ292LmF1L2RhdGEvZGF0YXNldC9hdXN0cmFsaWFuLXJhbmRvbS1icmVhdGgtdGVzdGluZyIsCiAgICAgICAgICAgICAgeCA9ICJZZWFyIiwgeSA9ICJUb3RhbCBhbm51YWwgcm9hZCBkZWF0aHMgaW52b2x2aW5nIGFuIGlsbGVnYWwgQkFDIiwKICAgICAgICAgICAgICB0YWcgPSAiR3JhcGggMiIpIAoKIyBmaW5kaW5nIG1lYW4gCm1lYW5fZm9yX2xpY2VuY2UgPC0gbWVhbihhcy5udW1lcmljKHNhZmV0eSRsaWNlbmNlX29yZGVyKSxuYS5ybT1UUlVFKQptZWFuX2Zvcl9jb25kdWN0ZWQgPC0gbWVhbihhcy5udW1lcmljKHNhZmV0eSRSQlRfY29uZHVjdGVkKSxuYS5ybT1UUlVFKQoKZ2dwbG90bHkoYSkKYGBgCgpUaGUgYmFyIGdyYXBoIGlzIHBvc2l0aXZlbHkgc2tld2VkIHdoaWNoIHN1Z2dlc3QgdGhhdCBvbmdvaW5nIGNvdW50ZXJtZWFzdXJlcyBpbXBsZW1lbnRlZCB3aWxsIGtlZXAgZGVjcmVhc2luZyB0aGUgbnVtYmVyIG9mIHJvYWQgZmF0YWxpdGllcyBjYXVzZWQgYnkgYW4gaWxsZWdhbCBCQUMuIAoKSW5jcmVhc2UgUkJUIHZpc2liaWxpdHkgYXMgYSBjb3VudGVybWVhc3VyZSBoYXMgYSBkZXRlcnJlbnQgaW1wYWN0IG9uIHRoZSBkZWNyZWFzZSBpbiByb2FkIGZhdGFsaXRpZXMgKFRlcmVyLCBLLiwgJiBCcm93biwgUi4yMDE0KS4gQXVzdHJhbGlhbiBzdGF0ZXMgc2hvdWxkIGJyZWF0aCB0ZXN0IGxhcmdlciBhbW91bnQgb2YgbGljZW5zZWQgZHJpdmVycyBhbm51YWwuIFRoZSBtZWFuIG9mIGxpY2Vuc2VkIGRyaXZlcnMgaXMgMzggYW5kIFJCVCBjb25kdWN0ZWQgaXMgMzksMzU1IChhbm51YWwpLCBzaW5jZSBSQlRzIGlzIHRoZSBzdHJvbmdlc3QgZGV0ZXJyZW50IGluIGRlY3JlYXNpbmcgcG9zaXRpdmUgUkJUUyBhbmQgb3ZlcmFsbCByb2FkIGZhdGFsaXRpZXMsIFN0YXRlcyBzaG91bGQgYWltIHRvIGluY3JlYXNlIHRoZSBwcm9wb3J0aW9uIG9mIGRyaXZlcnMgdGVzdGVkIGFubnVhbGx5LgoKTGltaXRhdGlvbiBvZiBSQlRzCjxicj4KU2VsZWN0aW9uIGJpYXMKPGJyPgrigKJEdXJpbmcgc3BlY2lmaWMgc2Vhc29ucyBvciBldmVudHMgdGhlcmUgaXMgYSBwZXJpb2Qgb2YgaW5jcmVhc2VkIFJCVCBlbmZvcmNlbWVudCB3aGVuIHRoZSBwb3RlbnRpYWwgZm9yIGRyaW5rIGRyaXZpbmcgaXMgZXhwZWN0ZWQgdG8gYmUgaGlnaC4KPGJyPgrigKIJU3BlY2lmaWMgbG9jYXRpb25zIGFyZSB0YXJnZXRlZCB3aGljaCB3b27igJl0IGluZmx1ZW5jZSBkcml2ZXJzIGRyaW5raW5nIGJlaGF2aW91cnMgYnV0IHJhdGhlciB0aGVpciBsb2NhdGlvbnMgYXMgd2VsbCBhcyBkcml2ZXJzIHVzZSBvZiBhdm9pZGFuY2UgdGFjdGljcy4gCjxicj4K4oCiCVNwZWNpZmljIGRyaXZlcnMgdGhhdCBkcmF3IHBvbGljZSBhdHRlbnRpb24gYXJlIG1vcmUgbGlrZWx5IHRvIGJlIHNlbGVjdGVkLgo8YnI+CgpPYnNlcnZhdGlvbmFsIFN0dWR5IAo8YnI+Ck1vcmUgcmVzZWFyY2ggaXMgbmVlZGVkIHRvIGNvbmNsdWRlZCB0aGUgYW1vdW50IG9mIHRlc3QgbmVlZGVkIHRvIG5lYXIgcm9hZCBmYXRhbGl0aWVzIHRvIHplcm8uCgohW10oaW1hZ2VzL3JidDMucG5nKQpJbWFnZSBTb3VyY2U6aHR0cHM6Ly93d3cuZGFpbHlsaWJlcmFsLmNvbS5hdS9zdG9yeS82NTIyOTQ1L3BvbGljZS1ibGl0ei1uYWJzLXNwZWVkaW5nLWRyaW5rLWRyaXZpbmctbW90b3Jpc3RzLWluLXJlZ2lvbi8KCkZ1cnRoZXJtb3JlLCBzaW5jZSBQb3NpdGl2ZSBSQlRzIGhhcyBhIGNvcnJlbGF0aW9uIHRvIHJvYWQgZmF0YWxpdGllcywgaWYgUkJUcyBjYW4gYnJlYXRoIHRlc3QgbW9yZSBsaWNlbnNlZCBkcml2ZXJzIGFuZCBkZXRlY3QgbW9yZSBwb3NpdGl2ZSBicmVhdGggdGVzdCBhbm51YWxseSwgdGhlIG51bWJlciBvZiByb2FkIGZhdGFsaXRpZXMgaW52b2x2aW5nIGFuIGlsbGVnYWwgQkFDIGNvdWxkIHBvdGVudGlhbGx5IGRlY3JlYXNlIGF0IGEgY29udGludW91cyByYXRlIHVudGlsIHRoZXJlIGlzIG5lYXIgemVybyByb2FkIGZhdGFsaXRpZXMgY2F1c2VkIGJ5IGlsbGVnYWwgQkFDLiBIZW5jZSwgaXQgaXMgcmVjb21tZW5kZWQgbW9yZSBzdHJhdGVnaWNhbGx5IGRlcGxveWVkIFJCVHMgdGhhdCBhcHBlYXIgdW5wcmVkaWN0YWJsZS4gSW4gc21hbGxlciBydXJhbCBzdGF0ZXMvcGFydHMgb2YgQXVzdHJhbGlhIG1vcmUgZm9jdXMgb24gUkJUIGVuZm9yY2VtZW50IGR1ZSB0byB0aGUgbGFjayBvZiB0cmFuc3BvcnRhdGlvbiBhY2Nlc3MuIAoKIyBBY2tub3dsZWRnbWVudHMgey19CuKAoiBEcnVnIGFuZCBBbGNvaG9sIFJlc2VhcmNoIGFuZCBUcmFpbmluZyBBdXN0cmFsaWEuKDIwMjApLkFsY29ob2wgYW5kIFlvdW5nIFBlb3BsZS5SZXRyaWV2ZWQgZnJvbSBodHRwOi8vZGFydGEubmV0LmF1L3dvcmRwcmVzcy1jb250ZW50L3VwbG9hZHMvMjAyMC8wMi9SQlQtRklOQUwtMjAyMC5wZGYKPGJyPgrigKIgT3dlbnMsIEQuLEJvb3JtYW4sIE0uRXZhbHVhdGluZyB0aGUgZGV0ZXJyZW50IGVmZmVjdCBvZiByYW5kb20gYnJlYXRoIHRlc3RpbmcgKFJCVCkgYW5kIHJhbmRvbSBkcnVnIHRlc3RpbmcgKFJEVCnigJRUaGUgZHJpdmVy4oCZcyBwZXJzcGVjdGl2ZSBSZXNlYXJjaCBmaW5kaW5ncyBNb25vZ3JhcGggU2VyaWVzIE5vLiA0MS5SZXRyaWV2ZWQgZnJvbSBodHRwczovL3d3dy5haWMuZ292LmF1L3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAyMC0wNS9tb25vZ3JhcGg0MS5wZGYKPGJyPgrigKIgTWFoLCBWLigyMDIxKS5FZmZlY3RzIG9mIEFsY29ob2wgb24gRHJpdmluZy5SZXRyaWV2ZWQgZnJvbSBodHRwczovL3d3dy5hbmRhdGVjaGRpc3RyaWJ1dGlvbi5jb20uYXUvYmxvZ3MvcmVzb3VyY2VzL2VmZmVjdHMtb2YtYWxjb2hvbC1vbi1kcml2aW5nIAo8YnI+CuKAoiBCcmVhdGhhbHlzZXJzLUF1c3RyYWxpYS5TdGF0aXN0aWNzIHJlbGF0aW5nIHRvIGRyaW5rIGRyaXZpbmcgaW5qdXJpZXMuUmV0cmlldmVkIGZyb20gaHR0cHM6Ly9icmVhdGhhbHlzZXJzLWF1c3RyYWxpYS5jb20uYXUvZHJpbmstZHJpdmluZy8KPGJyPgrigKIgQ0FSUlMtUS4oMjAxNikuRmFjdCBTaGVldDogRHJpbmsgRHJpdmluZy5SZXRyaWV2ZWQgZnJvbSBodHRwczovL3d3dy5ucnNwcC5vcmcuYXUvcmVzb3VyY2VzL2ZhY3Qtc2hlZXQtZHJpbmstZHJpdmluZy8KPGJyPgrigKIgUm9hZHMgYW5kIFRyYWZmaWMgQXV0aG9yaXR5LigyMDA5KS5Ecmlua2luZyBhbmQgZHJpdmluZy5SZXRyaWV2ZWQgZnJvbSBodHRwczovL2RyaXZlZm9ybXVsYS5jb20uYXUvZW4vd3AtY29udGVudC91cGxvYWRzLzIwMTMvMDQvRHJpbmtpbmctYW5kLWRyaXZpbmcucGRmCjxicj4K4oCiIEFsY29ob2wgYW5kIERydWcgRm91bmRhdGlvbi4oMjAxNykuQmxvb2QgYWxjb2hvbCBsZXZlbHMuUmV0cmlldmVkIGZyb20gaHR0cHM6Ly9hZGYub3JnLmF1L2luc2lnaHRzL2Jsb29kLWFsY29ob2wtbGV2ZWxzLwo8YnI+CuKAoiBUZXJlciwgSy4sICYgQnJvd24sIFIuKDIwMTQpLkVmZmVjdGl2ZSBkcmluayBkcml2aW5nIHByZXZlbnRpb24gYW5kIGVuZm9yY2VtZW50IHN0cmF0ZWdpZXM6IEFwcHJvYWNoZXMgdG8gaW1wcm92aW5nIHByYWN0aWNlLiBUcmVuZHMgJiBpc3N1ZXMgaW4gY3JpbWUgYW5kIGNyaW1pbmFsIGp1c3RpY2Ugbm8uIDQ3Mi4gQ2FuYmVycmE6IEF1c3RyYWxpYW4gSW5zdGl0dXRlIG9mIENyaW1pbm9sb2d5LlJldHJpZXZlZCBmcm9tIGh0dHBzOi8vd3d3LmFpYy5nb3YuYXUvcHVibGljYXRpb25zL3RhbmRpL3RhbmRpNDcyCjxicj4K4oCiIEJ1cmVhdSBvZiBJbmZyYXN0cnVjdHVyZSBhbmQgVHJhbnNwb3J0IFJlc2VhcmNoIEVjb25vbWljcy5BdXN0cmFsaWFuIFJhbmRvbSBCcmVhdGggVGVzdGluZy5SZXRyaWV2ZWQgZnJvbSBodHRwczovL2RhdGEuZ292LmF1L2RhdGEvZGF0YXNldC9hdXN0cmFsaWFuLXJhbmRvbS1icmVhdGgtdGVzdGluZwoKCgo=